Gilbert Sandford Vernam (3 April 1890 – 7 February 1960) was an AT&T Bell Labs engineer who, in 1917, invented the stream cipher and later co-invented the one-time pad cipher. Vernam proposed a teleprinter cipher in which a previously-prepared key, kept on paper tape, is combined character by character with the plaintext message to produce the ciphertext. To decipher the ciphertext, the same key would be again combined character by character, producing the plaintext. Vernam later worked for Postal Telegraph Co., and became an employee of Western Union when W.U. acquired Postal in 1943. His later work was largely with automatic switching systems for teletypewriter networks.
Contents |
The combining function Vernam specified in U.S. Patent 1,310,719, issued July 22, 1919, is the XOR operation, applied to the individual impulses or bits used to encode the characters in the Baudot Teletype code. Vernam did not use the term "XOR" in the patent, but he implemented that operation in relay logic. In the example Vernam gave, the plaintext is A, encoded as "++---" in Baudot, and the key character is B, encoded as "+--++". The resulting ciphertext will be "-+-++", which encodes a G. Combining the G with the key character B at the receiving end produces "++---", which is the original plaintext A. The NSA has called this patent "perhaps one of the most important in the history of cryptography.".[1]
Shortly thereafter, Joseph Mauborgne, at that time a captain in the US Army Signal Corps, proposed, in addition, that the paper tape key contain random information. The two ideas, when themselves combined, implement an automatic form of the one-time pad, though neither inventor used the name then. It was patented in the mid-1920s.
Claude Shannon, also at Bell Labs, proved that the one-time pad is unbreakable in his World War II research that was later published in October 1949. He also proved that any unbreakable system must have essentially the same characteristics as the one-time pad: the key must be truly random, as large as the plaintext, never reused in whole or part, and kept secret.[2]
In modern terminology, a Vernam cipher is a symmetrical stream cipher in which the plaintext is XORed with a random or pseudorandom stream of data (the "keystream") of the same length to generate the ciphertext. If the keystream is truly random and used only once, this is effectively a one-time pad. Substituting pseudorandom data generated by a cryptographically secure pseudo-random number generator is a common and effective construction for a stream cipher. RC4 is an example of a Vernam cipher that is widely used on the Internet.
Other cryptographic patents filed by Vernam include: